// Author: Ivan Kazmenko (gassa@mail.ru)
module solution;
import std.algorithm;
import std.math;
import std.stdio;

struct Point
{
	int x;
	int y;
}

Point transform (Point a)
{
	return Point (((a.x - a.y) & ~1) >> 1, a.y);
}

void main ()
{
	Point a, b;
	while (readf (" %s %s %s %s", &a.x, &a.y, &b.x, &b.y) > 0)
	{
		Point p = transform (a);
		Point q = transform (b);
		Point r = Point (q.x - p.x, q.y - p.y);
		writeln (max (abs (r.x), abs (r.y), abs (r.x + r.y)));
	}
}
